Mobile automation testing is currently used to identify and resolve bugs and other technical issues with mobile applications, thereby ensuring that mobile applications achieve high performance and stability. Traditional mobile automation testing includes testing mobile application features or functions one at a time, e.g., by writing one or more test cases. However, even if all test cases are passed, it is difficult to ensure that the mobile application contains no bugs or coding errors, because the test cases are unable to take human behaviors into account. For example, random events such as interruptions caused by notifications received on a phone, incoming calls, and switching applications by the user can give rise to additional bugs and errors within the application that are outside the scope of traditional mobile automation testing. Such real-life randomness injects significant uncertainty into mobile application testing.
To compound these problems, once an error is discovered in a real usage scenario, it is very hard to reproduce the error, particularly if it is caused by a random event during testing. Examples of such scenarios include: (1) a phone call is received while the application is running; after the user answers the phone, the application's status is corrupted, or the application fails to respond; (2) a notification pops up while the application is running; after the user reads the message by clicking the notification, the application crashes; (3) a new application is started using the test application; after the user closes the new application, the test application does not display correctly; (4) a mobile device is moved from one position to another randomly, e.g., while a user gestures in conversation, so the application switches from landscape display mode to portrait display mode; these random movements give rise to bugs; (5) a network to which the mobile device is connected switches one or off randomly, e.g., loses an internet connection or switches WiFi connections; these random network status changes give rise to bugs.